/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package entidades.controladores;

import entidades.Pc;
import java.sql.Connection;
import java.util.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.LinkedList;

/**
 *
 * @author alphyon
 */
public class PcJDBC {
    PreparedStatement ps = null;
    Connection conn = null;
    ResultSet rs = null;
    DateFormat dateformat = new SimpleDateFormat("dd/MM/yyyy");
    public PcJDBC(){
        cargarDriver();
        coneccion();

    }
    public void cargarDriver(){
       try{
           Class.forName("org.gjt.mm.mysql.Driver");
           System.out.println("Carga de driver Correcta......");
       }catch(Exception e){
           System.out.print("A ocurrido Un problema" +
                   "en la caraga del Driver"+e.getMessage());
       }
   }

   public void coneccion(){

       try {
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/inventario_control", "chepe", "gundam");
            System.out.println("Conexion Satisfactoria...");
        } catch(SQLException e) {
            e.printStackTrace();
        }

   }
     public int crearPc(Pc pc) {
        int flag=0;

        try{
        Date fecha=dateformat.parse(pc.getFechaInstalacion());
        String SQL="";
        SQL=SQL+"INSERT INTO pc (id,cod_ubicacion,fecha_instalacion,idequipo,id_user,nombre_asignado)";
        SQL=SQL+" VALUES(?,?,?,?,?,?);";

        ps = conn.prepareStatement(SQL);

        ps.setInt(1, pc.getId());
        ps.setString(2, pc.getCodUbicacion());
        ps.setDate(3,new java.sql.Date(fecha.getTime()));
        ps.setString(4, pc.getIdEquipo());
        ps.setString(5, pc.getIdUser());
        ps.setString(6, pc.getNombreAsignado());
        


        flag=ps.executeUpdate();

        }catch(Exception e){
           e.printStackTrace();
        }finally{
             try {
              if (ps != null) ps.close();
              if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

       return flag;
    }

    public int borrarRegistroPc(int id){
        int flag=0;
        String SQL = "DELETE FROM pc WHERE id=?";


        try {
            ps = conn.prepareStatement(SQL);
            ps.setInt(1, id);
            flag=ps.executeUpdate();
        } catch (SQLException e) {
           e.printStackTrace();
        }

        return flag;
    }
    public int actualizarPc(Pc pc) {
        int flag=0;

        try{
        Date fecha=dateformat.parse(pc.getFechaInstalacion());
        String SQL="";
        SQL=SQL+"UPDATE pc  SET cod_ubicacion=?,fecha_instalacion=?,id_user=?,nombre_asignado=? WHERE id=?";


        ps = conn.prepareStatement(SQL);



        ps.setString(1, pc.getCodUbicacion());
        ps.setDate(2,new java.sql.Date(fecha.getTime()));
      ps.setString(3, pc.getIdEquipo());
        ps.setString(4, pc.getIdUser());
        ps.setString(5, pc.getNombreAsignado());
        ps.setInt(6, pc.getId());

        flag=ps.executeUpdate();

        }catch(Exception e){
           e.printStackTrace();
        }finally{
             try {
              if (ps != null) ps.close();
              if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

       return flag;
    }
    public LinkedList<Pc> getPc(){
       LinkedList<Pc> lista=new LinkedList<Pc>();

       String SQL="SELECT * FROM pc";
        try {
            ps = conn.prepareStatement(SQL);
            rs = ps.executeQuery();

            while(rs.next()){

                Pc pc = new Pc();
                pc.setId(rs.getInt("id"));
                pc.setCodUbicacion(rs.getString("cod_ubicacion"));
                pc.setFechaInstalacion(dateformat.format(rs.getDate("fecha_instalacion")));
                pc.setIdEquipo(rs.getString("idequipo"));
                pc.setIdUser(rs.getString("id_user"));
                pc.setNombreAsignado(rs.getString("nombre_asignado"));
                lista.add(pc);

            }


        } catch (SQLException e) {
            e.printStackTrace();
        } finally{
             try {
              if (rs != null) rs.close();
              if (ps != null) ps.close();
              if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        return lista;


   }
    public static void main(String[]args){
        PcJDBC unidad = new PcJDBC();
        LinkedList<Pc> lisc = unidad.getPc();
        for(int i=0; i < lisc.size();i++){

            System.out.print(lisc.get(i).getIdEquipo());

            }
    }



}
